package practice;
/*
    使用文件字节缓冲流文件复制的练习：一读以写
    思路：明确要复制的数据源：
         复制数据的目的地：

      文件复制的步骤：
        1.创建字节缓冲输入流对象，构造方法中传递字节输入流
        2.创建字节缓冲输出流对象，构造方法中传递字节输出流
        3.使用字节缓冲输入流对象中的read（）方法去读取文件
        4.使用字节缓冲输出流对象中的write（）方法把读取到的字节写入到内部缓冲区中
        5.释放资源（会先把缓冲区中的数据刷新到文件中，再释放资源）
 */

import java.io.*;

public class Practice1 {
    public static void main(String[] args) throws IOException {
        long begin = System.currentTimeMillis();
        // 1.创建字节缓冲输入流对象，构造方法中传递字节输入流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:\\idea\\IntelliJ IDEA 2020.3\\perject_idea\\20210325\\e.txt"));
        // 2.创建字节缓冲输出流对象，构造方法中传递字节输出流
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:\\idea\\IntelliJ IDEA 2020.3\\perject_idea\\20210325\\f.txt"));
        //3.使用字节缓冲输入流对象中的read（）方法去读取文件
        byte[] bytes = new byte[1024];
        int len = 0;
        while ((len = bis.read(bytes)) != -1){
           // 4.使用字节缓冲输出流对象中的write（）方法把读取到的字节写入到内部缓冲区中
            bos.write(bytes);
        }

       // 5.释放资源（会先把缓冲区中的数据刷新到文件中，再释放资源）
        bos.close();//写完一定读完，所以先释放写
        bis.close();

        ;
        long end = System.currentTimeMillis();
        System.out.println(end-begin+"毫秒");
    }
}
